// miniprogram/pages/note/test/testAggregatedCollectionsForUser/testAggregatedCollectionsForUser.js
Page({

  /**
   * 页面的初始数据
   */
  data: {

  },
  
  /*
    Test basic aggregate collections for user.
  */
  async testAggregatedCollectionsForUser() {
    let queryRequest = {
      originCollection : "User",
      fromCollectionsLookUpParmas : [
                                {
                                  name : "Article",
                                  let : {
                                    userID : '$userID'
                                  },
                                  pipeline : [
                                    {
                                      operator : 'eq', 
                                      fieldName : '$userID',
                                      definedName : '$$userID'
                                    },                                 
                                  ],
                                  project : {
                                    _id: 0,
                                    articleID: 1,
                                    content: 1,
                                  },
                                  as : 'User2Article',
                                },

                                {
                                  name : "User2ArticleInteraction",
                                  let : {
                                    userID : '$userID',
                                  },
                                  pipeline : [
                                    {
                                      operator : 'eq', 
                                      fieldName : '$userID',
                                      definedName : '$$userID'
                                    }
                                  ],
                                  project : {
                                    _id: 0,                               
                                  },                 
                                  as : 'User2ArticleInteractionList',
                                },

                                {
                                  name : "UserIdentity",
                                  let : {
                                    identityID : '$identityID',
                                  },
                                  pipeline : [
                                    {
                                      operator : 'eq', 
                                      fieldName : '$identityID',
                                      definedName : '$$identityID'
                                    }
                                  ],
                                  project : {
                                    _id: 0,
                                    identityID: 1,
                                    userIdentityDesc: 1,
                                    permissionsDesc: 1,
                                  },                 
                                  as : 'User2UserIdentity',
                                },
      ],
      matchCondition : {
        operator : 'eq',
        userID : 1
      }
    }

    await wx.cloud.callFunction({
      name : "AggregatedUser",
      data : {
        queryRequest
      }
    })
    .then(res => {
      let resultSet = res.result;
      console.log(`Test for [AggregatedUser] ========== 返回结果原始数据：${resultSet}, notNull : ${resultSet != null}` );
    });
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    //Test for aggregate collections for user
    this.testAggregatedCollectionsForUser();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})